Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

local-scope

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

local-scope

ES 2015 way of making private properties in class-based programming

  • 1.2.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

local-scope

NPM Version Build Status Coverage Status Runs on Node Built with GNU Make Uses ECMAScript 2015

This adapter uses ECMAScript 2015 (ES 6) syntax: you must run at least Node.js v4 in order to use this adapter.

About

This module allows for easy implementation of trully private object / class instance properties. It uses ES 2015's WeakMap to achieve true privacy without causing memory leaks.

Usage

You start by generating a private scope manager. This ensures that no other module, even when using the same cached version of this module, can get access to your private data.

const local = require('local-scope')() // <-- Notice the function call!

Alternatively, to make full use of ES2015 module syntax, you can create a new scope this way:

// This will create your very own scope manager
import scope from 'local-scope/create'

Now you can use that local function to set and retrieve private data from your own functions!

class Person {

  constructor (publicName, secretName) {
    // This is public
    this.publicName = publicName
    // This is private - it's not even saved to this instance!
    local(this).secretName = secretName
  }

  hasSecretName (name) {
    // Notice how you can retrieve the same private value
    // for this instance
    return local(this).secretName === name
  }
}

// And when used...
const bruce = new Person('Bruce Wayne', 'Batman')
    , clark = new Person('Clark Kent', 'Superman')

bruce.hasSecretName('Batman') // true!
clark.hasSecretName('Batman') // false!

Important: To access the private properties of an object, you need to have two things:

  • A reference to the object
  • A reference to the function to which you saved the private data

The scope manager always returns an object, so you can save whatever you need there, it just has to be saved into an object's property (you can name it whatever you like).

License

This software is licensed under the BSD-3-Clause License. See the LICENSE file for more information.

Keywords

FAQs

Package last updated on 18 Jul 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc